home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1984-12-21 | 4.5 KB | 180 lines |
- 1 COLOR 0,0,0
- 1000 REM *********************************************************************
- 1010 REM * *
- 1020 REM * TRIVIAL TOWERS QUESTION ENTRY PROGRAM *
- 1030 REM * COPYRIGHT 1984, VINYARD SOFTWARE, INC. *
- 1040 REM * UNPUBLISHED WORK - ALL RIGHTS RESERVED *
- 1050 REM * *
- 1060 REM *********************************************************************
- 1200 COLOR 7,4
- 1210 KEY OFF
- 1220 CLS
- 1230 PRINT TAB(18);"********************************************************"
- 1240 PRINT TAB(18);"** TRIVIAL TOWERS QUESTION ENTRY PROGRAM **"
- 1250 PRINT TAB(18);"** COPYRIGHT 1984, VINYARD SOFTWARE, INC. **"
- 1255 PRINT TAB(18);"** UNPUBLISHED WORK - ALL RIGHTS RESERVED **"
- 1260 PRINT TAB(18);"********************************************************"
- 1270 PRINT:PRINT
- 1320 PRINT "AFTER YOU HAVE REMOVED THE PROGRAM DISK AND INSERTED THE"
- 1330 PRINT "QUESTIONS DISK, PUSH THE RETURN KEY";
- 1340 INPUT Y$
- 1350 COLOR 7,4,0 : CLS
- 1360 PRINT "YOU MAY UPDATE ONE OF THE FOLLOWING FILES (OR CREATE A NEW ONE):"
- 1370 PRINT:PRINT
- 1390 FILES
- 1400 PRINT:PRINT
- 2000 REM OPEN FILE
- 2020 PRINT "WHAT IS THE NAME OF THE QUESTIONS FILE (INCLUDE DISK DRIVE:)"
- 2030 PRINT "(TYPE R TO RETURN TO TRIVAL TOWERS, OR"
- 2035 PRINT " TYPE X TO EXIT FROM PROGRAM) ";
- 2040 INPUT Y$
- 2050 IF Y$ = "R" GOTO 9900
- 2051 IF Y$ = "r" GOTO 9900
- 2052 IF Y$ = "X" GOTO 9900
- 2053 IF Y$ = "x" GOTO 9900
- 2055 IF Y$ = "" GOTO 9900
- 2060 LET F$ = Y$
- 2070 CLOSE#1
- 2080 OPEN F$ AS #1
- 2090 FIELD#1,72 AS Q$, 56 AS A$
- 3000 REM DISPLAY, UPDATE, OR EXIT
- 3010 CLS
- 3020 PRINT "LIST, DISPLAY, UPDATE, OR EXIT ";F$;"? (L/D/U/X)";
- 3030 INPUT Y$
- 3035 IF Y$ = "L" GOTO 4000
- 3036 IF Y$ = "l" GOTO 4000
- 3040 IF Y$ = "D" GOTO 5000
- 3041 IF Y$ = "d" GOTO 5000
- 3050 IF Y$ = "U" GOTO 6000
- 3051 IF Y$ = "u" GOTO 6000
- 3060 IF Y$ = "X" GOTO 1000
- 3061 IF Y$ = "x" GOTO 1000
- 3070 GOTO 3020
- 4000 REM LIST TO PRINTER
- 4020 CLS
- 4030 GOSUB 8400
- 4040 PRINT : PRINT "ENTER QUESTION SET # TO START LISTING"
- 4050 PRINT "(NOTE THAT A ZERO WILL EXIT ROUTINE.)";
- 4060 INPUT L1 : IF L1 < 1 GOTO 3000
- 4070 PRINT : PRINT "ENTER QUESTION SET # TO END LISTING"
- 4080 PRINT "(NOTE THAT A ZERO WILL EXIT ROUTINE.)";
- 4090 INPUT L2 : IF L2 < 1 GOTO 3000
- 4100 IF L2 > N THEN LET L2 = N
- 4110 IF L2 < L1 THEN LET L2 = L1
- 4120 PRINT : PRINT "PLEASE PUSH RETURN KEY WHEN PRINTER IS ON";
- 4130 INPUT Y$
- 4140 CLS
- 4150 PRINT "LISTING FROM";L1;" TO";L2;" OUT OF FILE -> ";F$
- 4155 LPRINT "QUESTIONS AND ANSWERS FROM FILE -> ";F$;" <-" : LPRINT
- 4160 FOR I = L1 TO L2
- 4170 GET #1,I
- 4180 LPRINT "Q";I;":";Q$
- 4190 LPRINT "A";I;":";A$
- 4200 LPRINT
- 4210 NEXT I
- 4220 GOTO 3000
- 5000 REM DISPLAY QUESTION AND ANSWER SETS
- 5010 CLS
- 5020 GOSUB 8400
- 5030 PRINT
- 5040 PRINT "WHICH ONE DO YOU WANT TO DISPLAY?"
- 5050 PRINT "(NOTE: A NUMBER LESS THAN ONE WILL EXIT THIS ROUTINE.)";
- 5060 INPUT N1
- 5070 IF N1<1 GOTO 3000
- 5080 IF N1>N GOTO 5040
- 5090 GET #1,N1
- 5100 CLS
- 5105 COLOR 0,2
- 5110 PRINT "QUESTION #";N1;" IS:"
- 5120 COLOR 0,5
- 5130 PRINT Q$
- 5140 COLOR 7,0
- 5150 LOCATE 5
- 5155 COLOR 0,2
- 5160 PRINT "ANSWER #";N1;" IS:"
- 5170 COLOR 0,5
- 5180 PRINT A$
- 5190 LOCATE 24
- 5195 COLOR 0,6
- 5200 PRINT "PUSH <RETURN> TO CONTINUE";
- 5210 INPUT Y$
- 5215 COLOR 0,4
- 5220 GOTO 5000
- 6000 REM MODIFY THE QUESTIONS AND ANSWERS
- 6005 CLS
- 6010 COLOR 0,4
- 6020 PRINT "MODIFY, ADD, OR EXIT? (M/A/X)";
- 6030 INPUT Y$
- 6040 IF Y$ = "M" GOTO 6100
- 6041 IF Y$ = "m" GOTO 6100
- 6050 IF Y$ = "A" GOTO 6500
- 6051 IF Y$ = "a" GOTO 6500
- 6060 IF Y$ = "X" GOTO 3000
- 6061 IF Y$ = "x" GOTO 3000
- 6070 GOTO 6020
- 6100 REM MODIFY THE ACTUAL QUESTIONS AND ANSWERS
- 6110 CLS
- 6120 GOSUB 8400
- 6130 PRINT "WHICH SET DO YOU WANT TO MODIFY?"
- 6140 PRINT "(NOTE: A NUMBER LESS THAN ONE WILL EXIT THIS ROUTINE.)";
- 6150 INPUT N1
- 6160 IF N1<1 GOTO 6000
- 6170 IF N1>N GOTO 6120
- 6180 GET#1,N1
- 6190 CLS
- 6195 COLOR 0,6
- 6200 PRINT "QUESTION SET";N1
- 6210 PRINT
- 6215 COLOR 0,5
- 6225 PRINT "OLD Q: ";Q$
- 6235 PRINT "OLD A: ";A$
- 6240 PRINT
- 6245 COLOR 0,6
- 6250 PRINT "ENTER NEW QUESTION (TYPE THE LETTER X TO EXIT)."
- 6260 COLOR 0,3
- 6262 PRINT
- 6265 PRINT "NEW QUESTION:"
- 6270 PRINT "1 5 10 15 20 25 30 35 40 45 50 55 60 65 72"
- 6280 LINE INPUT Q1$
- 6290 IF Q1$ = "X" GOTO 6000
- 6291 IF Q1$ = "x" GOTO 6000
- 6300 IF LEN(Q1$) < 73 GOTO 6330
- 6310 PRINT "QUESTION TOO LONG. 72 CHARACTER MAXIMUM. PLEASE TRY AGAIN."
- 6320 GOTO 6270
- 6330 PRINT
- 6340 PRINT "NEW ANSWER:"
- 6350 PRINT "1 5 10 15 20 25 30 35 40 45 50 56"
- 6370 LINE INPUT A1$
- 6380 IF A1$ = "X" GOTO 6000
- 6381 IF A1$ = "x" GOTO 6000
- 6390 IF LEN(A1$) < 57 GOTO 6420
- 6400 PRINT "ANSWER TOO LONG. 56 CHARACTER MAXIMUM. PLEASE TRY AGAIN."
- 6410 GOTO 6350
- 6420 LSET Q$ = Q1$
- 6440 LSET A$ = A1$
- 6450 PUT #1,N1
- 6460 COLOR 0,4
- 6470 IF Y$ = "M" GOTO 6100
- 6471 IF Y$ = "m" GOTO 6100
- 6500 REM ADD QUESTION AND ANSWER SETS
- 6510 CLS
- 6520 GOSUB 8400
- 6530 N1=N+1
- 6540 PRINT
- 6550 GOTO 6250
- 7998 GOTO 9900
- 7999 STOP
- 8400 REM DETERMINE NUMBER OF QUESTION AND ANSWER SETS IN THE FILE
- 8410 N = LOF(1)/128
- 8420 PRINT "THERE ARE";N;" QUESTION AND ANSWER SETS IN ";F$
- 8430 RETURN
- 9900 REM END OF PROGRAM
- 9980 CLOSE#1
- 9990 COLOR 0,4
- 9991 CLS
- 9993 PRINT "REMOVE THE QUESTIONS DISK AND INSERT THE PROGRAM DISK, THEN PUSH THE RETURN KEY";
- 9994 INPUT X : COLOR 7,0,0
- 9995 IF (Y$="X") OR (Y$="x") THEN CLS : KEY ON : END
- 9998 CHAIN "A:TTOWERS.BAS"
- 9999 END
-